<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace='Warehouse' xmlns='http://ibatis.apache.org/mapping' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
  <alias>
    <typeAlias alias='Warehouse' assembly='Janus.Mes.POCO.dll' type='Janus.Mes.POCO.Warehouse' />
  </alias>
  <resultMaps>
    <resultMap id='WarehouseResult' class='Warehouse'>
      <result property='Id' column='Id' />
      <result property='WhCode' column='WhCode' />
      <result property='WhName' column='WhName' />
      <result property='DepCode' column='DepCode' />
      <result property='Person' column='Person' />
      <result property='Tel' column='Tel' />
      <result property='Address' column='Address' />
      <result property='IsEnable' column='IsEnable' />
      <result property='Remark' column='Remark' />
      <result property='Creator' column='Creator' />
      <result property='CreateDate' column='CreateDate' />
      <result property='Updater' column='Updater' />
      <result property='UpdateDate' column='UpdateDate' />
      <result property='IsDelete' column='IsDelete' />
      <result property='CreatorCode' column='CreatorCode' />
      <result property='UpdaterCode' column='UpdaterCode' />
      <result property='OperDept' column='OperDept' />
      <result property='Timestamp' column='Timestamp' />
      <result property='IsDefault' column='IsDefault' />
    </resultMap>
  </resultMaps>
  <statements>
    <sql id="UpdaterConditions">
      <dynamic prepend="SET">
        <isPropertyAvailable prepend="" property="WhName">
          <isNotEmpty prepend="," property="WhName">
            [WhName]=#WhName#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="DepCode">
          <isNotEmpty prepend="," property="DepCode">
            [DepCode]=#DepCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Person">
          <isNotEmpty prepend="," property="Person">
            [Person]=#Person#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Tel">
          <isNotEmpty prepend="," property="Tel">
            [Tel]=#Tel#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Address">
          <isNotEmpty prepend="," property="Address">
            [Address]=#Address#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsEnable">
          <isNotEmpty prepend="," property="IsEnable">
            [IsEnable]=#IsEnable#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Remark">
          <isNotEmpty prepend="," property="Remark">
            [Remark]=#Remark#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Creator">
          <isNotEmpty prepend="," property="Creator">
            [Creator]=#Creator#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreateDate">
          <isNotEmpty prepend="" property="CreateDate">
            <isNotEqual prepend="," property="CreateDate" compareValue="1900-01-01">
              [CreateDate]=#CreateDate#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Updater">
          <isNotEmpty prepend="," property="Updater">
            [Updater]=#Updater#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdateDate">
          <isNotEmpty prepend="" property="UpdateDate">
            <isNotEqual prepend="," property="UpdateDate" compareValue="1900-01-01">
              [UpdateDate]=#UpdateDate#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDelete">
          <isNotEmpty prepend="" property="IsDelete">
            <isNotEqual prepend="," property="IsDelete" compareValue="0">
              [IsDelete]=#IsDelete#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreatorCode">
          <isNotEmpty prepend="," property="CreatorCode">
            [CreatorCode]=#CreatorCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdaterCode">
          <isNotEmpty prepend="," property="UpdaterCode">
            [UpdaterCode]=#UpdaterCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="OperDept">
          <isNotEmpty prepend="," property="OperDept">
            [OperDept]=#OperDept#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDefault">
          <isNotEmpty prepend="," property="IsDefault">
            [IsDefault]=#IsDefault#
          </isNotEmpty>
        </isPropertyAvailable>
      </dynamic>
    </sql>
    <sql id="WhereConditions">
      <dynamic prepend="WHERE">
        <isPropertyAvailable prepend="" property="Id">
          <isNotEmpty prepend="AND" property="Id">
            [Id]=#Id#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhCode">
          <isNotEmpty prepend="AND" property="WhCode">
            [WhCode]=#WhCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhName">
          <isNotEmpty prepend="AND" property="WhName">
            [WhName]=#WhName#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="DepCode">
          <isNotEmpty prepend="AND" property="DepCode">
            [DepCode]=#DepCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Person">
          <isNotEmpty prepend="AND" property="Person">
            [Person]=#Person#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Tel">
          <isNotEmpty prepend="AND" property="Tel">
            [Tel]=#Tel#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Address">
          <isNotEmpty prepend="AND" property="Address">
            [Address]=#Address#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsEnable">
          <isNotEmpty prepend="AND" property="IsEnable">
            [IsEnable]=#IsEnable#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Remark">
          <isNotEmpty prepend="AND" property="Remark">
            [Remark]=#Remark#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Creator">
          <isNotEmpty prepend="AND" property="Creator">
            [Creator]=#Creator#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreateDate">
          <isNotEmpty prepend="" property="CreateDate">
            <isNotEqual prepend="AND" property="CreateDate" compareValue="1900-01-01">
              [CreateDate]=#CreateDate#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Updater">
          <isNotEmpty prepend="AND" property="Updater">
            [Updater]=#Updater#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdateDate">
          <isNotEmpty prepend="" property="UpdateDate">
            <isNotEqual prepend="AND" property="UpdateDate" compareValue="1900-01-01">
              [UpdateDate]=#UpdateDate#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDelete">
          <isNotEmpty prepend="" property="IsDelete">
            <isNotEqual prepend="AND" property="IsDelete" compareValue="0">
              [IsDelete]=#IsDelete#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreatorCode">
          <isNotEmpty prepend="AND" property="CreatorCode">
            [CreatorCode]=#CreatorCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdaterCode">
          <isNotEmpty prepend="AND" property="UpdaterCode">
            [UpdaterCode]=#UpdaterCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="OperDept">
          <isNotEmpty prepend="AND" property="OperDept">
            [OperDept]=#OperDept#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Timestamp">
          <isNotEmpty prepend="" property="Timestamp">
            <isNotEqual prepend="AND" property="Timestamp" compareValue="1900-01-01">
              [Timestamp]=#Timestamp#
            </isNotEqual>
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDefault">
          <isNotEmpty prepend="AND" property="IsDefault">
            [IsDefault]=#IsDefault#
          </isNotEmpty>
        </isPropertyAvailable>
      </dynamic>
    </sql>
    <sql id="InsertPublic">
      INSERT INTO Warehouse(
      <dynamic prepend=" ">
        <isPropertyAvailable prepend="" property="Id">
          <isNotEmpty prepend="," property="Id">
            [Id]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhCode">
          <isNotEmpty prepend="," property="WhCode">
            [WhCode]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhName">
          <isNotEmpty prepend="," property="WhName">
            [WhName]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="DepCode">
          <isNotEmpty prepend="," property="DepCode">
            [DepCode]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Person">
          <isNotEmpty prepend="," property="Person">
            [Person]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Tel">
          <isNotEmpty prepend="," property="Tel">
            [Tel]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Address">
          <isNotEmpty prepend="," property="Address">
            [Address]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsEnable">
          <isNotEmpty prepend="," property="IsEnable">
            [IsEnable]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Remark">
          <isNotEmpty prepend="," property="Remark">
            [Remark]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Creator">
          <isNotEmpty prepend="," property="Creator">
            [Creator]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreateDate">
          <isNotEmpty prepend="," property="CreateDate">
            [CreateDate]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Updater">
          <isNotEmpty prepend="," property="Updater">
            [Updater]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdateDate">
          <isNotEmpty prepend="," property="UpdateDate">
            [UpdateDate]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDelete">
          <isNotEmpty prepend="," property="IsDelete">
            [IsDelete]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreatorCode">
          <isNotEmpty prepend="," property="CreatorCode">
            [CreatorCode]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdaterCode">
          <isNotEmpty prepend="," property="UpdaterCode">
            [UpdaterCode]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="OperDept">
          <isNotEmpty prepend="," property="OperDept">
            [OperDept]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Timestamp">
          <isNotEmpty prepend="," property="Timestamp">
            [Timestamp]
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDefault">
          <isNotEmpty prepend="," property="IsDefault">
            [IsDefault]
          </isNotEmpty>
        </isPropertyAvailable>
      </dynamic>
      )
      VALUES
      (
      <dynamic prepend=" ">
        <isPropertyAvailable prepend="" property="Id">
          <isNotEmpty prepend="," property="Id">
            #Id#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhCode">
          <isNotEmpty prepend="," property="WhCode">
            #WhCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="WhName">
          <isNotEmpty prepend="," property="WhName">
            #WhName#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="DepCode">
          <isNotEmpty prepend="," property="DepCode">
            #DepCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Person">
          <isNotEmpty prepend="," property="Person">
            #Person#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Tel">
          <isNotEmpty prepend="," property="Tel">
            #Tel#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Address">
          <isNotEmpty prepend="," property="Address">
            #Address#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsEnable">
          <isNotEmpty prepend="," property="IsEnable">
            #IsEnable#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Remark">
          <isNotEmpty prepend="," property="Remark">
            #Remark#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Creator">
          <isNotEmpty prepend="," property="Creator">
            #Creator#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreateDate">
          <isNotEmpty prepend="," property="CreateDate">
            #CreateDate#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Updater">
          <isNotEmpty prepend="," property="Updater">
            #Updater#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdateDate">
          <isNotEmpty prepend="," property="UpdateDate">
            #UpdateDate#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDelete">
          <isNotEmpty prepend="," property="IsDelete">
            #IsDelete#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="CreatorCode">
          <isNotEmpty prepend="," property="CreatorCode">
            #CreatorCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="UpdaterCode">
          <isNotEmpty prepend="," property="UpdaterCode">
            #UpdaterCode#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="OperDept">
          <isNotEmpty prepend="," property="OperDept">
            #OperDept#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="Timestamp">
          <isNotEmpty prepend="," property="Timestamp">
            #Timestamp#
          </isNotEmpty>
        </isPropertyAvailable>
        <isPropertyAvailable prepend="" property="IsDefault">
          <isNotEmpty prepend="," property="IsDefault">
            #IsDefault#
          </isNotEmpty>
        </isPropertyAvailable>
      </dynamic>
      )
    </sql>
    <!-- Insert statement:新增Mapper-->
    <insert id='Insert' parameterClass='Warehouse'>
      <include refid="InsertPublic"/>
    </insert>
    <!--Update statement:修改Mapper-->
    <update id='Update' parameterClass='Warehouse'>
      UPDATE [Warehouse]
      <include refid="UpdaterConditions"/>
      WHERE 1=1
      AND WhCode=#WhCode#
    </update>
    <update id='UpdateSetion' parameterClass='hashtable'>
      UPDATE [Warehouse]
      <include refid="UpdaterConditions"/>
      WHERE $conditions$
    </update>
    <update id='Save' parameterClass='Warehouse'>
      IF NOT EXISTS(SELECT 1 FROM [Warehouse] WHERE 1=1  AND [WhCode]=#WhCode# )
      BEGIN
      <include refid="InsertPublic"/>
      END
      ELSE
      BEGIN
      UPDATE Warehouse
      <include refid="UpdaterConditions"/>
      WHERE  1=1
      AND [WhCode]=#WhCode#
      END
    </update>
    <delete id='Delete' parameterClass='hashtable'>
      DELETE FROM [Warehouse] WHERE
      <![CDATA[  
	 [WhCode]=#pk0# 
        ]]>
    </delete>
    <delete id='DeleteWhere' parameterClass='string'>
      DELETE FROM [Warehouse] WHERE $value$
    </delete>

    <!-- select by key statement:-->
    <select id='FindOne' parameterClass='hashtable' resultClass='Warehouse'>
      SELECT * FROM Warehouse WHERE
      <![CDATA[
		[WhCode]=#pk0# 
        ]]>
    </select>
    <select id='FindAllCondition' parameterClass='string' resultClass='Warehouse'>
      SELECT * FROM [Warehouse] WHERE $value$
    </select>
    <select id='FindScalar' parameterClass='hashtable' resultClass='Warehouse'>
      SELECT * FROM [Warehouse] WHERE $conditions$
    </select>

    <select id='FindAllCount' parameterClass='string' resultClass='int'>
      SELECT COUNT(1) FROM [Warehouse] WHERE $value$
    </select>
    <select id='FindByPage' parameterClass='string' resultClass='Warehouse'>
      SELECT * FROM [Warehouse] WHERE $value$
    </select>
  </statements>
</sqlMap>
